package com.yxinsur.imc.business.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxinsur.imc.common.annotation.Excel;
import com.yxinsur.imc.common.core.domain.BaseImcEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 供应商上传手续费清单对象 imc_recn_supplier_details
 *
 * @author imc
 * @date 2021-05-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class ImcRecnSupplierDetails extends BaseImcEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private Long id;

    /**
     * 手续费表主键
     */
    @Excel(name = "手续费表主键")
    private Long recnId;

    /**
     * 保单表主键
     */
    @Excel(name = "保单表主键")
    private Long orderId;

    /**
     * 保单险种详情主键
     */
    @Excel(name = "保单险种详情主键")
    private Long orderRiskId;

    /**
     * 保单号-对账项
     */
    @Excel(name = "保单号-对账项")
    private String policyCode;

    /**
     * 险种主键
     */
    @Excel(name = "险种主键")
    private Long repoInsId;

    /**
     * 险种代码-对账项
     */
    @Excel(name = "险种代码-对账项")
    private String insCode;

    /**
     * 险种名称
     */
    @Excel(name = "险种名称")
    private String riskName;

    /**
     * 险种保费
     */
    @Excel(name = "险种保费")
    private BigDecimal prem;

    @Excel(name = "实缴保费")
    private BigDecimal paymentPrem;
    /**
     * 手续费结算月YYYY-MM
     */
    @Excel(name = "手续费结算月YYYY-MM")
    private String settleMonth;

    /**
     * 结算日期(上传的日期)
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结算日期(上传的日期)", width = 30, dateFormat = "yyyy-MM-dd")
    private Date settleDate;

    /**
     * 保单所在年度-对账项
     */
    @Excel(name = "保单所在年度-对账项")
    private Long policyYear;

    /**
     * 保单缴费次数，首次为1-对账项
     */
    @Excel(name = "保单缴费次数，首次为1-对账项")
    private Long payNum;

    /**
     * 保障期限
     */
    @Excel(name = "保障期限")
    private String coveragePeriodValue;

    /**
     * 缴费期限-对账项
     */
    @Excel(name = "缴费期限-对账项")
    private String chargePeriodValue;

    /**
     * 领取年龄
     */
    @Excel(name = "领取年龄")
    private String pensionAge;

    /**
     * 险种方案外键
     */
    @Excel(name = "险种方案外键")
    private Long insSchemeId;

    /**
     * 缴费频率类型
     */
    @Excel(name = "缴费频率类型")
    private String chargeIntervalEnum;

    /**
     * 因子1值
     */
    @Excel(name = "因子1值")
    private String factor1Value;

    /**
     * 因子2值
     */
    @Excel(name = "因子2值")
    private String factor2Value;

    /**
     * 因子3值
     */
    @Excel(name = "因子3值")
    private String factor3Value;

    /**
     * 承保日期-对账项
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "承保日期-对账项", width = 30, dateFormat = "yyyy-MM-dd")
    private Date insureDate;

    /**
     * 客户回执签收时间-对账项
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "客户回执签收时间-对账项", width = 30, dateFormat = "yyyy-MM-dd")
    private Date custAckDate;

    /**
     * 核对结果LS短账 SL长账 L_SUCCESS平账（注账目保费金额相等为平账，并非手续费金额相等为平账）
     */
    @Excel(name = "核对结果LS短账 SL长账 L_SUCCESS平账", readConverterExp = "注=账目保费金额相等为平账，并非手续费金额相等为平账")
    private String recnCheckResult;

    /**
     * 手续费处理结果：A-以供应商为准；B-以系统为准；C-忽略不处理
     */
    @Excel(name = "手续费处理结果：A-以供应商为准；B-以系统为准；C-忽略不处理")
    private String recnHandlingResult;

    /**
     * 手续费是否和系统手续费相等YORN sys_yes_no字典
     */
    @Excel(name = "手续费是否和系统手续费相等YORN sys_yes_no字典")
    private String isFeeEq;


    /**
     * $column.columnComment
     */
    @Excel(name = "手续费是否和系统手续费相等YORN sys_yes_no字典")
    private String createId;

    /**
     * $column.columnComment
     */
    @Excel(name = "手续费是否和系统手续费相等YORN sys_yes_no字典")
    private String updateId;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

    /**
     * 逻辑删除
     */
    @Excel(name = "逻辑删除")
    private String isDeleted;

    /**
     * 租户id,一个租户id唯一对一个机构id（默认机构id为根节点id暨法人机构）
     */
    @Excel(name = "租户id,一个租户id唯一对一个机构id", readConverterExp = "默=认机构id为根节点id暨法人机构")
    private Long tenantId;
}
